/**
 * fulihui.com Inc.
 * Copyright (c) 2015-2016 All Rights Reserved.
 */
package com.fulihui.wgj.facade.request.template;

import com.alibaba.fastjson.annotation.JSONField;
import com.fulihui.common.enums.ContainOrEliminateEnum;
import com.fulihui.common.enums.IsTdEnum;
import com.fulihui.common.request.rpc.PageAppRequest;
import com.fulihui.wgj.facade.request.game.CalcSendCountGameContainRequest;
import com.fulihui.wgj.facade.request.game.CalcSendCountGameEliminateRequest;
import com.fulihui.wgj.facade.request.youzan.TradeOrderQueryRequest;
import lombok.Getter;
import lombok.Setter;

import java.util.Date;

/**
 * 微信用户计算人数request
 *
 * @author wang_wx
 * @date 2018-07-24
 */
@Getter
@Setter
public class CalcSendCountRequest extends PageAppRequest {
    /**
     * 性别
     * {@link com.fulihui.common.enums.SexEnum}
     */
    private Long sex;
    /**
     * 包含或者排除 - 以下Tab类似
     * {@link com.fulihui.common.enums.ContainOrEliminateEnum}
     */
    private String sexTab;

    /**
     * 是否退订 - 默认排除退订的人
     */
    private Long isTd = IsTdEnum.IS.getValue();
    private String isTdTab = ContainOrEliminateEnum.ELIMINATE.getCode();

    /**
     * 操作系统
     * {@link com.fulihui.common.enums.OsEnum}
     */
    private String os;
    private String osTab;

    /**
     * 国家
     */
    private String country;
    private String countryTab;

    /**
     * 省份
     */
    private String province;
    private String provinceTab;

    /**
     * 城市
     */
    private String city;
    private String cityTab;

    /**
     * 是否点击过链接
     */
    private String hasClickLink;
    private String hasClickLinkTab;

    /**
     * 是否点击过小程序
     */
    private String hasClickMiniProgram;
    private String hasClickMiniProgramTab;

    /**
     * 分组
     */
    private String groupid;
    private String groupTab;

    /**
     * 标签
     */
    private String tag;
    private String tagTab;

    /**
     * 二维码扫码场景
     */
    private String qrSceneStr;
    private String qrSceneStrTab;

    /**
     * 关注开始时间
     */
    private Date subStartTime;
    /**
     * 发送结束时间
     */
    private Date subEndTime;
    /**
     * 模板ID
     */
    private String templateId;
    /**
     * 模板发送内容
     */
    private String templateContent;
    /**
     * 模板发送URL
     */
    private String templateUrl;
    /**
     * 发送条件--前端拼接的描述信息
     */
    private String sendConditionDesc;
    /**
     * 是否定时任务
     */
    private Boolean cronTab = false;
    /**
     * 定时时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date jobTime;
    /**
     * 记录哪个账号推送的
     */
    private String loginId;

    /**
     * 是否VIP发送
     */
    private Boolean vip;

    /**
     * 是否发送小程序
     */
    private Boolean miniApp;

    /**
     * 发送小程序的URL
     */
    private String miniAppUrl;

    /**
     * 发送小程序的AppId
     */
    private String miniAppId;

    /**
     * 发送总条数
     */
    private Long sendCount;

    /**
     * 批次ID 用于定时任务传输和编辑需要
     */
    private Long recordId;

    /**
     * 有赞过滤条件
     */
    private TradeOrderQueryRequest yzFilter;

    /**
     * 游戏条件--包含
     */
    private CalcSendCountGameContainRequest containRequest;
    /**
     * 游戏条件--排除
     */
    private CalcSendCountGameEliminateRequest eliminateRequest;

}